package com.leyou.item.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.leyou.common.dto.PageDTO;
import com.leyou.item.dto.SpuDTO;
import com.leyou.item.entity.Spu;

public interface SpuService extends IService<Spu> {
    /**
     * 分页查询spu
     * @param page     当前页
     * @param rows     每页大小
     * @param saleable 上架商品或下降商品
     * @param brandId 品牌id
     * @param categoryId 分类id
     * @param id  spu的id
     * @return 当前页商品数据
     */
    PageDTO<SpuDTO> querySpuByPage(Long brandId, Long categoryId, Long id, Long page, Long rows, Boolean saleable);

    /**
     * 新增/修改商品
     * @param spuDTO 页面提交商品信息
     * @return 无
     */
    void saveGoods(SpuDTO spuDTO);

    /**
     * 修改商品上下架
     * @param id    商品spu的id
     * @param saleable  true：上架；false：下架
     * @return
     */
    void updateSpuSaleable(Long id, Boolean saleable);

    /**
     * 根据id查询spu及sku、spuDetail等
     * @param id 商品id
     * @return 商品信息
     */
    SpuDTO queryGoodsById(Long id);

    /**
     * 更新商品
     * @param spuDTO 页面提交商品信息
     * @return 无
     */
    void updateGoods(SpuDTO spuDTO);

    /**
     * 根据id查询商品spu
     * @param id 商品id
     * @return 商品信息
     */
    SpuDTO querySpuById(Long id);
}
